package com.hl.annotation.anno_value.service;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * @Component
 * 自动创建一个 Bean 对象 UserService，并加载到 spring 容器，可以直接 get() 该对象
 *
 * @author liuhuan
 */
@Component
public class UserService {

    @Value("${liuhuan}")    // 配置文件中存在，test01=nice gay
    private String test01;

    @Value("${liuhuan123}") // 配置文件中不存在，test02=${liuhuan123}
    private String test02;

    @Value("liuhuan")       // 指定字符串，test03=liuhuan
    private String test03;

    @Value("#{zhangSan}")   // 指定BeanName，test04=Bean对象，作用类似 @Autowired
    private OrderService test04;


    @Value("${local.server.port}")  // 扩展注解，如果采用该方式，在多个位置引用，后期如果修改 local.port 的名字则会很麻烦
    private String test051;

    @LocalServerPort
    private String test052;


    public void test() {
        System.out.println("test01 = " + test01);
        System.out.println("test02 = " + test02);
        System.out.println("test03 = " + test03);
        System.out.println("test04 = " + test04);
        System.out.println("test051 = " + test051);
        System.out.println("test052 = " + test052);
    }

}
